/**
 * 
 */
package com.tio.live.main.api;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.tio.live.main.model.db02.User;
import com.tio.live.main.model.db02.UserExample;
import com.tio.live.main.model.db02.vo.UserVo;
import com.tio.manager.core.pager.Pageable;

/**
 * 用户表
 * 
 * @author: xufei
 */
public interface UserServiceIntf
{
	
	/**
	 * 
	 * @param userVo
	 * @return
	 */
	public UserVo add(UserVo userVo);
	
	/**
	 * 删除记录
	 * @param userVo
	 * @return
	 */
	public int delete(UserVo userVo);
	
	/**
	 * 根据主键删除记录
	 * @param id
	 * @return
	 */
	public int deleteByPrimaryKey(Integer id);
	
	/**
	 * 批量删除
	 * @param ids
	 * @return
	 */
	public int batchDelete(Integer[] ids);
	
	/**
	 * 更新记录(默认情况下，有值没值的字段都会被更新，开发人员需要根据业务调整updateByPrimaryKey的sql语句)
	 * @param userVo
	 * @return
	 */
	public int updateByPrimaryKey(UserVo userVo);
	
	/**
	 * 只更新有值的字段，没有值的字段不更新
	 * @param userVo
	 * @return
	 */
	public int updateByPrimaryKeySelective(UserVo userVo);
	
	/**
	 * 根据id选择记录
	 * @param id
	 * @return
	 */
	public User selectById(Integer id);
	
	/**
	 * 根据Example选择记录集
	 * @param userExample
	 * @return
	 */
	public List<User> selectByExample(UserExample userExample);
	
	/**
	 * 根据Example选择一条记录
	 * @param userExample
	 * @return
	 */
	public User selectOneByExample(UserExample userExample);
	
	/**
	 * 查询表中所有记录
	 */
	public List<User> queryAll() throws Exception;
	
	public String createRobot(Integer num) throws Exception;
	
	/**
	 * 
	 * @param pageSize
	 * @param pageIndex
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public Pageable pageQuery(Integer pageSize, Integer pageIndex, Map<String, Object> params) throws Exception;

	UserVo findUserByID(int id) throws IOException;

}
